#ifndef _COMMON_H_
#define _COMMON_H_

#include <string.h>
#include <stdio.h>
#include <errno.h>

// Path utilizado para inicializar los semáforos a través de la función ftok()
#define DIRECTORY "."

// Ids de los IPCs (Creo que esto está mal)
#define ID_SEMCONTROL				1
#define ID_SEMDOOR					2
#define ID_SHMEM					3
#define ID_Q_ENTRY_DOOR_INPUT   	4
#define ID_Q_ENTRY_DOOR_OUTPUT   	5
#define ID_Q_EXIT_DOOR_INPUT 	  	6
#define ID_Q_EXIT_DOOR_OUTPUT   	7

#define MUSEO_MAX					7
#define CANT_DOORS					4

// Si bien esta clase solo posee un atributo, puede ser que en un 
// futuro se agregue más
typedef struct
{
	int cantPersonas;
	bool puertaBloqueada[CANT_DOORS];
} ControlData;

// Estructura de los mensajes enviados por los procesos Persona
typedef struct
{
	// El ID de este mensaje es el nro de puerta
	long mtype;
	long idPersona;
	
} PersonaInputMsg;

// Estructura de los mensajes enviados por los procesos Persona
typedef struct
{
	long mtype;
	char msg[30];
} PersonaOutputMsg;

#endif
